import {Injectable} from '@angular/core';
import {Subject} from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class AdminService {
  /**
   * Subject（特殊的Observable可观察对象，可以向多个Observer观察者多路推送消息）
   */
  private adminSubject = new Subject<AdminVariable>();

  /**
   * 发布订阅消息
   */
  public adminObservable = this.adminSubject.asObservable();

  /**
   * 推送消息
   */
  public pushAdminVariable(adminVariable: AdminVariable) {
    this.adminSubject.next(adminVariable);
  }
}

export interface AdminVariable {
  componentName?: string; // 组件名称
  componentTitle?: string; // 组件标题
  id?: string; // id字符串，多个以逗号分隔
  deleteDlgClosed?: boolean; // true关闭删除弹框,false打开删除弹框
  deleteSuccess?: boolean; // true删除成功,false删除失败
  progressValue?: number; // 进度条进度值
  userName?: string; // 用户名
  userCover?: string; // 用户头像
}

